home *** CD-ROM | disk | FTP | other *** search
/ Reverse Code Engineering RCE CD +sandman 2000 / ReverseCodeEngineeringRceCdsandman2000.iso / RCE / Tools / Win95 Secrets / SETUP.Z / MSGQUEUE.H < prev    next >
Encoding:
C/C++ Source or Header  |  1995-07-19  |  3.6 KB  |  92 lines

  1. //==================================
  2. // SHOWWND - Matt Pietrek 1995
  3. // FILE: MSGQUEUE.H
  4. //==================================
  5.  
  6. #pragma pack(1)
  7.  
  8. // type == LT_USER_VWININFO(0x1B), offset 10h in msg queue
  9. typedef struct _PERQUEUEDATA
  10. {
  11. WORD    npNext;         // 00h a USER heap handle (type == LT_USER_VWININFO)
  12. WORD    un2;            // 02h
  13. WORD    un3;            // 04h
  14. WORD    npQMsg;         // 06h type == LT_USER_QMSG
  15. WORD    un5;            // 08h
  16. WORD    un6;            // 0Ah
  17. WORD    un7;            // 0Ch
  18. WORD    un8;            // 0Eh
  19. WORD    un9;            // 10h
  20. WORD    un10;           // 12h
  21. WORD    somehQueue1;    // 14h a msg queue handle
  22. WORD    somehQueue2;    // 16h a msg queue handle
  23. DWORD   hWndCapture;    // 18h
  24. DWORD   hWndFocus;      // 1Ch
  25. DWORD   hWndActive;     // 20h
  26. } PERQUEUEDATA, *PPERQUEUEDATA;
  27.  
  28. // type == LT_USER_QMSG(0x1A)
  29. typedef struct _QUEUEMSG
  30. {
  31. WORD    hWnd;           // 00h
  32. WORD    msg;            // 02h
  33. WORD    wParamLow;      // 04h
  34. DWORD   lParam;         // 06h
  35. DWORD   messageTime;    // 0Ah  GetMessageTime
  36. DWORD   messagePos;     // 0Eh  GetMessagePos
  37. WORD    wParamHigh;     // 12h  HIWORD of wParam for 32 bit apps
  38. DWORD   extraInfo;      // 14h  GetMessageExtraInfo
  39. WORD    nextQueueMsg;   // 18h  Near offset to next QUEUEMSG
  40. } QUEUEMSG, *PQUEUEMSG;
  41.  
  42. // LT_USER_PROCESS(0x1D), offset 16h in the msg queue
  43. // All queues belonging to the same process have a pointer to this struct
  44. typedef struct _QUEUEPROCESSDATA
  45. {
  46. WORD    npNext;     // 00h ptr to next QUEUEPROCESSDATA
  47. WORD    un2;        // 02h type == LT_USER_SUBSYSTEM
  48. WORD    flags;      // 04h
  49. WORD    un3;        // 06h
  50. DWORD   processId;  // 08h e.g., GetCurrentProcessId
  51. WORD    un5;        // 0Ch
  52. WORD    hQueue;     // 0Eh an hQueue belonging to this process (which one?)
  53. } QUEUEPROCESSDATA, *PQUEUEPROCESSDATA;
  54.  
  55. typedef struct _MSGQUEUE
  56. {
  57. WORD    nextQueue;  // 00h  next queue in the list
  58. WORD    hTask;      // 02h  Task that this queue is associated with
  59. WORD    headMsg;    // 04h  Near ptr to head of linked list of QUEUEMSGs
  60. WORD    tailMsg;    // 06h  Near ptr to end of list of QUEUEMSGs
  61. WORD    lastMsg;    // 08h  Near ptr to last msg retrieved (not really!)
  62. WORD    cMsgs;      // 0Ah  Number of messages
  63. BYTE    un1;        // 0Ch  ???
  64. BYTE    sig[3];     // 0Dh  "MJT" (Jon Thomason?)
  65. WORD    npPerQueue; // 10h  16 bit offset in USER DGROUP to PERQUEUEDATA
  66.                     //      type == LT_USER_VWININFO???
  67. WORD    un2;        // 12h  ???
  68. WORD    un2_5;      // 14h  ??
  69. WORD    npProcess;  // 16h  near pointer in USER DGROUP to a QUEUEPROCESSDATA
  70. DWORD   un3[3];     // 18h  ???
  71. DWORD   messageTime;// 24h  retrieved by GetMessageTime()
  72. DWORD   messagePos; // 28h  retrived by GetMessagePos()
  73. WORD    un4;        // 2Ch  ??? (seems to always be 0)
  74. WORD    lastMsg2;   // 2Eh  Near ptr to last retrieved QUEUEMSG
  75. DWORD   extraInfo;  // 30h  returned by GetMessageExtraInfo()
  76. DWORD   un5[2];     // 34h  ???
  77. DWORD   threadId;   // 3Ch  See GetWindowProcessThreadId
  78. WORD    un6;        // 40h  ??
  79. WORD    expWinVer;  // 42h  Version of Windows this app expects
  80. DWORD   un7;        // 44h  ???
  81. WORD    ChangeBits; // 48h  high order word returned by GetQueueStatus
  82. WORD    WakeBits;   // 4Ah  low order word returned by GetQueueStatus
  83. WORD    WakeMask;   // 4Ch  The QS_xxx bits that GetMessage/PeekMessage are
  84.                     //      waiting for
  85. WORD    un8;        // 4Eh  ???
  86. WORD    hQueueSend; // 50h  App that's in SendMessage to this queue
  87. DWORD   un9;        // 52h  ???
  88. WORD    sig2;       // 56h  "HQ"
  89. } MSGQUEUE, *PMSGQUEUE;
  90.  
  91. #pragma pack()
  92.